1. Field of the Invention
The present invention pertains to systems in which two or more data processors, or computers, are arranged together in a network. More particularly, the present invention relates to protocols of application programming interfaces utilized in computer networks.
2. Description of Prior Art
Data processing systems, or computers such as personal computers (PCs) may be arranged in a local area network (LAN) for mutual communication. Typical available LANs may accommodate hundreds of thousands of PCs, and extend for several thousand meters, depending on the load that is placed on the network by the PCs. LANs may be configured in a variety of forms. For example, multiple PCs may be connected to a common bus, or connected to a ring, such as the token-ring network of International Business Machines Corporation (IBM). Another form of LAN connects the PCs in a multi-branch configuration known as a "tree". A particular LAN configuration may be selected in accordance with the requirements of the given application.
In each case, a PC is incorporated in a LAN within a node, which includes the PC, a network adapter and pertinent software providing an interface between the PC and the physical adapter. The adapter in turn is connected to other nodes to form the network. The network adapters provide the physical interfaces for the corresponding PCs to communicate with each other over the network.
The associated software utilizing the LAN includes various protocols that are effectively rules to govern communication over the network. Such rules, or protocols, are needed because multiple PCs in a network are sharing a common cable medium, and must communicate with each other over the cable medium reliably without interference from one another. In general, the protocols aid in such reliable communication, provide addressing for all computers on the network, and control the flow of data traveling between computers on the network. Typically, the protocols include such functions as data transmission, reception and acknowledgment over the cable.
The interface software utilized to operate a PC, or other computer, in a network may be considered to be structured in layers. An example of a LAN, or a portion of a LAN, is shown generally at 10 in FIG. 1, and includes two nodes designated as A and B. In node A, a PC A is indicated as being equipped with an adapter A including an adapter card, which is the physical layer 12 of the adapter A and which connects directly to the PC A. The necessary cable connections to the remainder of the network are made to the adapter card. The PC A may be equipped with application programming 14, which is the highest level software and is accessible by the user of the PC. At the other extreme of the layered software of node A is a low level link layer 16. The link layer software 16 is the communication control software proximate the remainder of the LAN 10 by way of the adapter card physical layer 12. The link layer 16 is generally largely responsible for assembling bits into data units for transmission by the physical layer 12, or for checking and assembling bits received from elsewhere in the network by the adapter A. When information is to be transmitted by node A, the link layer 16 puts the data into the correct format and detects any errors that might occur.
It will be appreciated from FIG. 1 that the link layer 16 of adapter A is provided with the adapter physical layer 12. Additional interface software may be input directly into the PC A. Such software includes an adapter support interface 18, for example. Such an adapter support interface 18 may be provided to allow the application program 14 to use the adapter card by providing control blocks in the PC memory and calling the adapter support interface with an interrupt instruction.
An additional interface software layer may be utilized to provide the command functions for communication on the LAN. By 1985, IBM had provided what may be considered an industry standard for an application programming interface in the form of a network basic input/output system (NETBIOS). PC A is shown equipped with NETBIOS 20 as the highest level of interface software in communication with the application programming 14.
Node B also includes a PC B to which is connected an adapter B as the physical interface between the PC B and the remainder of the network. A wiring system 22 is shown as connecting the two nodes A and B in the LAN 10 through their respective adapters.
As in the case of node A, node B includes several layers of software, the highest layer being application programming 24 to which the user of node B has access. NETBIOS 26 is provided for the command functions, and communicates through the adapter support interface 28 to the link layer software 30, which is provided with a physical layer adapter card 32 in the adapter B.
The various interface software layers may be provided either as incorporated in the adapter card or resident in the PC memory. It will be appreciated that additional software layers and features maybe included in a network node. Further, additional details of the software layers indicated in FIG. 1 are known in the industry and need not be described in detail herein, nor referred to for an explanation and understanding of the present invention. As discussed in detail hereinafter, the present invention may be provided as an improvement over NETBIOS as heretofore available.
In the NETBIOS version heretofore available, there exists a protocol generally identified by the command SEND, which is utilized in sending a message between two nodes in a LAN, once a NETBIOS session has been established between the two nodes For example, a message to be sent from PC A of node A to PC B of node B is input through the application programming 14 at PC A along with the command SEND. The message is then appropriately prepared by NETBIOS 20, and transmission is effected through the adapter A by the link software 16. When the message is received at the link layer software 30 of node B, through the corresponding adapter B, a link level acknowledgment is transmitted from node B to node A to indicate that a message has been received. This link level acknowledgment is itself then received as a message by the link level software 16 of node A.
If the message originally sent to node B is appropriately processed and communicated in its entirety to the user at PC B through the layers of node B software, an acknowledgment indicating that fact is originated by NETBIOS 26 of node B and sent, via the cable 22, to NETBIOS 20 of node A where such acknowledgment can be communicated to the PC A user through the application programming 14. If, however, the message originally sent to node B is not received, or not completely received, at the application level 24 of PC B, a response message to that effect will be transmitted by NETBIOS 26 of node B to NETBIOS 20 of node A for communication to the user at PC A. In either case, the acknowledgment regarding the receipt of the message at the application level 24 of PC B is originated after the message is processed by NETBIOS 26 and attempted to be conveyed to the user at PC B. Additionally, this acknowledgment is originated at a higher software level at NETBIOS 26 than the link level 30, and is more sophisticated than a link level acknowledgment which simply indicates that a transmission has been received at the node without giving details of the reception. Following the higher level NETBIOS acknowledgment to node A, node A sends a link layer acknowledgment to node B that the higher level acknowledgment has been received at node A.
A control flow diagram of the SEND function of NETBIOS is shown generally at 40 in FIG. 2. Starting at block 42, the user of the PC wanting to send a message inputs the message and initiates the SEND command. The SEND function is processed in the NETBIOS, as indicated in block 44, and is then transmitted by the adapter over the network cable, as indicated at block 46. The message initiating node must pause until transmission of the SEND message along the network to the receiving node is complete, as indicated by block 48. The link level acknowledgment that a transmission has been received at the link level of the receiving node signals completion of the transmission. When the transmission of the message is complete, the initiating node must await receipt of an acknowledgment indicating whether the transmitted message has been received by the PC user of the receiving node, as shown by block 50. As discussed hereinabove, the SEND function employs two additional acknowledgments. One such acknowledgment is a high level NETBIOS acknowledgment initiated by the receiving node to indicate whether all, a part, or none of the message was actually received by the application level of the receiving node. The other acknowledgment is sent by the link level software of the node which initiated the original message, to signal receipt of the high level acknowledgment from the message receiving node. Upon receipt of the complete acknowledgment called for in block 50, indicating receipt of the full message at the node B application level and including the link level response, the SEND command function is complete at block 52, and control is returned to the user of the message transmitting node in block 54 for further commands.
The control flow diagram 40 of FIG. 2 illustrates the operation of the SEND function in a circumstance where the message is received at the application level of the receiving node PC. If, for some reason, the message is not received at the PC application level, or is only partially received there, an appropriate high level NETBIOS response indicating same will be received by the message initiating node, which will respond with the link level acknowledgment, as the acknowledgments at block 50. Then, control will be returned to the user at block 54 when the session is ended, or some other action is taken.
It will be appreciated that the transmission and receipt of the higher level NETBIOS acknowledgment signal and the following link level acknowledgment described above require time, and therefore extend the time that the network is dedicated to communication between the nodes A and B actually for the original message from node A. During the time that the network is being used to complete the communication of the original message from node A to node B, including the aforementioned two acknowledgments, other messages are not being sent on that session between the two nodes A and B. For example, a simple request message sent from node A to node B seeking information may consume approximately 25 milliseconds. Each of the acknowledgments may typically account for 2.5 milliseconds of that time. It is advantageous and desirable from an efficiency standpoint as well as an economic one to minimize the protocols necessary for communication between nodes over the network. The present invention provides such an improvement by eliminating the last two acknowledgment signals while allowing complete use of the network as before.